Computer networks have become commonplace and are used to create value and increase productivity and customer satisfaction in many business enterprises, and are also productively used in many private settings. The increase in network usage has led to an abundance of remote storage mechanisms. That is, data and/or services needed at a particular computer or site may be stored at and retrieved from a remote location. For example, a domain name server acts as a remote storage location of IP addresses for a client machine. Generally, servers, directories, databases and other repositories provide remote storage facilities that may be accessed over a network connection for any number of reasons.
Typically, data and services that may be widely and frequently accessed by different machines in a dispersed network are replicated over the network. That is, for example, a service is identically duplicated to a widely distributed plurality of repositories accessible to clients via the network. A few of the primary benefits provided by data replication are decreased response time for most requests, decreased network utilization per request on average, generally increased capacity and generally increased reliability.
With respect to decreasing response time, replication increases the probability that a client machine will be able to access a nearby repository, and thus, especially when large quantities of data are involved, the response time to transmit the data from the repository to the requesting client may be reduced. Similarly, with respect to decreased network utilization, if clients resort to nearby repositories for the information they need, then the sum of network traffic relative to all replicas is less than would be the case if a single repository were utilized instead of replicas. The aforementioned general increase in capacity due to replication comes about because of the ability of multiple replicas to serve multiple clients at the same time without impacting each other. Finally, increased reliability is generally realized in a replicated system due to the ability of each site or replica to serve clients whose preferred replica or site is not functioning.
Replication does, however, bring with it certain costs above and beyond the cost of replication itself. For example, a client machine is not inherently aware of which replica or site it should use to access the required data or service (hereinafter collectively referred to as “service”). Typically, in order to reap the benefits of decreased response time and decreased network utilization, client machines need to access the closest available replica. Usually this requires management or administrative personnel to manually configure each client. Not only does this increase management costs and the number of opportunities for error, but in addition, companies and institutions often are reluctant to deploy new replicas because such could require a manual reconfiguration of some or all of the relevant clients.